<?php

class WfEmpresaContacto {
//<editor-fold defaultstate="collapsed" desc="Constantes">
  const NOMBRE_ENTIDAD = "WfEmpresaContacto";
  const SESION_LISTADO = "WfEmpresaContactoListado";
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Campos">
  private $_id;
  private $_nombre;
  private $_paterno;
  private $_materno;
  private $_rut;
  private $_dv;
  private $_direccion;
  private $_email;
  private $_telefono;
  private $_celular;
  private $_cargo;
  private $_observacion;
  private $_idEmpresa;
  private $_existe;
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Propiedades">
  public function getId() { return $this->_id; }
  public function setId($value) { $this->_id = $value; }

  public function getNombre() { return $this->_nombre; }
  public function setNombre($value) { $this->_nombre = $value; }

  public function getPaterno() { return $this->_paterno; }
  public function setPaterno($value) { $this->_paterno = $value; }

  public function getMaterno() { return $this->_materno; }
  public function setMaterno($value) { $this->_materno = $value; }

  public function getRut() { return $this->_rut; }
  public function setRut($value) { $this->_rut = $value; }

  public function getDv() { return $this->_dv; }
  public function setDv($value) { $this->_dv = $value; }

  public function getDireccion() { return $this->_direccion; }
  public function setDireccion($value) { $this->_direccion = $value; }

  public function getEmail() { return $this->_email; }
  public function setEmail($value) { $this->_email = $value; }

  public function getTelefono() { return $this->_telefono; }
  public function setTelefono($value) { $this->_telefono = $value; }

  public function getCelular() { return $this->_celular; }
  public function setCelular($value) { $this->_celular = $value; }

  public function getCargo() { return $this->_cargo; }
  public function setCargo($value) { $this->_cargo = $value; }

  public function getObservacion() { return $this->_observacion; }
  public function setObservacion($value) { $this->_observacion = $value; }

  public function getIdEmpresa() { return $this->_idEmpresa; }
  public function setIdEmpresa($value) { $this->_idEmpresa = $value; }

  public function getExiste() { return $this->_existe; }
  public function setExiste($value) { $this->_existe = $value; }
//</editor-fold>
  
//<editor-fold defaultstate="collapsed" desc="Metodos Publicos">
  /**
   * constructor
   * @author VSR, 16/05/2012
   */
  public function __construct() {
    try {
        $this->_id = -1;
        $this->_nombre = "";
        $this->_paterno = "";
        $this->_materno = "";
        $this->_rut = "";
        $this->_dv = "";
        $this->_direccion = "";
        $this->_email = "";
        $this->_telefono = "";
        $this->_celular = "";
        $this->_cargo = "";
        $this->_observacion = "";
        $this->_idEmpresa = -1;
        $this->_existe = 0;
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * obtiene registro por su id
   * @author VSR, 16/05/2012
   */
  public function obtenerPorId($id = -1) {
    try {
      //define llamada procedimiento almacenado
      $sp = "CALL spu_WfEmpresaContacto_ObtenerPorId({id});";

      //reemplaza marcas por valores reales
      $sp = str_replace("{id}", $id, $sp);

      //ejecuta procedimiento
      $arr = Bd::exec($sp);
      $totalRegistros = count($arr);

      //si se encontraron registros entonces se asignan
      if ($totalRegistros > 0) {
        $row = $arr[0];
        $this->_id = ( is_null($row["Id"]) ) ? -1 : $row["Id"];
        $this->_nombre = ( is_null($row["Nombre"]) ) ? "" : $row["Nombre"];
        $this->_paterno = ( is_null($row["Paterno"]) ) ? "" : $row["Paterno"];
        $this->_materno = ( is_null($row["Materno"]) ) ? "" : $row["Materno"];
        $this->_rut = ( is_null($row["Rut"]) ) ? "" : $row["Rut"];
        $this->_dv = ( is_null($row["Dv"]) ) ? "" : $row["Dv"];
        $this->_direccion = ( is_null($row["Direccion"]) ) ? "" : $row["Direccion"];
        $this->_email = ( is_null($row["Email"]) ) ? "" : $row["Email"];
        $this->_telefono = ( is_null($row["Telefono"]) ) ? "" : $row["Telefono"];
        $this->_celular = ( is_null($row["Celular"]) ) ? "" : $row["Celular"];
        $this->_cargo = ( is_null($row["Cargo"]) ) ? "" : $row["Cargo"];
        $this->_observacion = ( is_null($row["Observacion"]) ) ? "" : $row["Observacion"];
        $this->_idEmpresa = ( is_null($row["IdEmpresa"]) ) ? -1 : $row["IdEmpresa"];
        $this->_existe = ($this->_id == -1) ? 0 : 1;
      } else {
        $this->_id = -1;
        $this->_nombre = "";
        $this->_paterno = "";
        $this->_materno = "";
        $this->_rut = "";
        $this->_dv = "";
        $this->_direccion = "";
        $this->_email = "";
        $this->_telefono = "";
        $this->_celular = "";
        $this->_cargo = "";
        $this->_observacion = "";
        $this->_idEmpresa = -1;
        $this->_existe = 0;
      }
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * crea o actualiza un registro
   * @author VSR, 16/05/2012
   */
  public function grabar() {
    try {
      //define llamada procedimiento almacenado
      $sp = "CALL spu_WfEmpresaContacto_Grabar({id},'{nombre}','{paterno}','{materno}','{rut}','{dv}','{direccion}','{email}','{telefono}','{celular}','{cargo}','{observacion}',{idEmpresa});";

      //reemplaza marcas por valores reales
      $sp = str_replace("{id}", $this->_id, $sp);
      $sp = str_replace("{nombre}", $this->_nombre, $sp);
      $sp = str_replace("{paterno}", $this->_paterno, $sp);
      $sp = str_replace("{materno}", $this->_materno, $sp);
      $sp = str_replace("{rut}", $this->_rut, $sp);
      $sp = str_replace("{dv}", $this->_dv, $sp);
      $sp = str_replace("{direccion}", $this->_direccion, $sp);
      $sp = str_replace("{email}", $this->_email, $sp);
      $sp = str_replace("{telefono}", $this->_telefono, $sp);
      $sp = str_replace("{celular}", $this->_celular, $sp);
      $sp = str_replace("{cargo}", $this->_cargo, $sp);
      $sp = str_replace("{observacion}", $this->_observacion, $sp);
      $sp = str_replace("{idEmpresa}", $this->_idEmpresa, $sp);

      //ejecuta procedimiento
      $arr = Bd::exec($sp);
      $totalRegistros = count($arr);

      //si se encontraron registros entonces se asignan
      if ($totalRegistros > 0) {
        $row = $arr[0];
        $this->_id = $row["Id"];
        $this->_existe = 1;
      } else {
        $this->_id = -1;
        $this->_existe = 0;
      }
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * elimina un registro
   * @author VSR, 16/05/2012
   */
  public function eliminar() {
    try {
      //define llamada procedimiento almacenado
      $sp = "CALL spu_WfEmpresaContacto_Eliminar({id});";

      //reemplaza marcas por valores reales
      $sp = str_replace("{id}", $this->_id, $sp);

      //ejecuta procedimiento
      $arr = Bd::exec($sp);
      $totalRegistros = count($arr);

      //si se encontraron registros entonces se asignan
      $this->_id = -1;
      $this->_existe = 0;
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * destructor
   * @author VSR, 16/05/2012
   */
  public function  __destruct() {
   // destruye el objeto
  }
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Metodos Compartidos">
  /**
   * obtiene contactos de una empresa
   * @param <type> $idEmpresa
   * @return string
   * @author VSR, 04/05/2012
   */
  public static function obtenerContactos($idEmpresa) {
    $arr = null;
    try {
      //define llamada procedimiento almacenado
      $sp = "CALL spu_WfEmpresaContacto_ObtenerContactos({idEmpresa});";

      //reemplaza marcas por valores reales
      $sp = str_replace("{idEmpresa}", $idEmpresa, $sp);

      //ejecuta procedimiento
      $arr = Bd::exec($sp);
    } catch (Exception $e) {
      $arr = null;
    }
    return $arr;
  }

  /**
   * elimina los contactos de la empresa
   * @param <type> $idEmpresa
   * @param <type> $listadoId
   * @return <type>
   * @author VSR, 08/05/2012
   */
  public static function eliminarDatos($idEmpresa, $listadoId) {
    $retorno = null;
    try {
      //define llamada procedimiento almacenado
      $sp = "CALL spu_WfEmpresaContacto_EliminarDatos({idEmpresa},'{listadoId}');";

      //reemplaza marcas por valores reales
      $sp = str_replace("{idEmpresa}", $idEmpresa, $sp);
      $sp = str_replace("{listadoId}", $listadoId, $sp);

      //ejecuta procedimiento
      $retorno = Bd::exec($sp, Bd::SCALAR);
    } catch (Exception $e) {
      $retorno = Sistema::CODIGO_SQL_ERROR;
    }
    return $retorno;
  }


//</editor-fold>
}
?>

